package com.web_bloks.project.controllers.client;

import com.web_bloks.system.client.Logger;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.Label;

/**
 * 
 * @author Jean-Lou Dupont
 *
 */
public class MessageController 
	implements PostListener {

	Label label = null;

	Timer timer = null;
	
	final static int DEFAULT_TIMEOUT = 10000;
	
	String msg_ok = null;
	String msg_error = null;
	
	/*===================================================================
	 * Constructor 
	 ===================================================================*/
	public MessageController() {
		
	}
	/*===================================================================
	 * Configuration 
	 ===================================================================*/
	public void setMessageOk( String msg ) {
		this.msg_ok = new String ( msg );
	}
	public void setMessageError( String msg ) {
		this.msg_error = new String ( msg );
	}

	/*===================================================================
	 * API 
	 ===================================================================*/
	
	public void setLabel(Label label) {
		this.label = label;
	}
	public void clearMessage() {
		label.setVisible(false);
		label.setText("");
	}
	/*===================================================================
	 * PostListener 
	 ===================================================================*/
	
	public void onPostBegin(){
	}

	public void onPostCompleted( int code ) {
		Logger.logInfo(getClass()+".onPostCompleted");
		
		if ( 200 == code ) {
			label.setText(msg_ok);
		} else {
			label.setText(msg_error);
		}
		label.setVisible(true);
		updateTimer();
	}
	
	/*===================================================================
	 * Timer 
	 ===================================================================*/
	protected void updateTimer() {

		if ( null != timer ) {
			timer.cancel();
			timer = null;
		}
		
		timer = new Timer() {
			public void run() {
				clearMessage();
			}
		};
		
		timer.schedule(DEFAULT_TIMEOUT);
	}
	
}//END